﻿using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; 
using Subgurim.Controles;

namespace CityGames
{
    public partial class About : System.Web.UI.Page
    {
        private DataSet dsTienda;

        protected void Page_Load(object sender, EventArgs e)
        {
          
        }

        protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);
            try
            {
                if (Session["usuario"] != null)
                {
                    string tipoUsuario = (string)Session["tipoUsuario"];

                    if (tipoUsuario == "AdministradorWeb")
                    {
                        //mostrar los campos para editar los datos de la tienda
                        MostrarDatosEditar();
                        pDatosTiendaEditar.Visible = true;
                        pDatosTiendaMostrar.Visible = false;
                    }
                    else
                    {
                        pDatosTiendaEditar.Visible = false;
                        MostrarDatosVer();
                        pDatosTiendaMostrar.Visible = true;
                    }
                }
                else
                {
                    pDatosTiendaEditar.Visible = false;
                    pDatosTiendaMostrar.Visible = true;
                    MostrarDatosVer();                        
                }
            }
            catch (Exception ex)
            {
                MyMessageBoxInfo.Show(MyMessageBox.MessageType.Error, ex.ToString(), "Error", 125, 300);
            }
        }

        public void MostrarDatosEditar()
        {
            try
            {
                Tienda enTienda = new Tienda();
                dsTienda = enTienda.ObtenerDatosTienda();
                tbDireccion.Text = dsTienda.Tables["Tienda"].Rows[0]["Direccion"].ToString();
                tbTelefono.Text = dsTienda.Tables["Tienda"].Rows[0]["Telefono"].ToString();
                tbHorario.Text = dsTienda.Tables["Tienda"].Rows[0]["Horario"].ToString();

                UbicarMapa(tbDireccion.Text);
            }
            catch (Exception ex)
            {
                MyMessageBoxInfo.Show(MyMessageBox.MessageType.Error, ex.ToString(), "Error", 310, 430);
            }

        }

        public void MostrarDatosVer()
        {
            try
            {
                Tienda enTienda = new Tienda();
                dsTienda = enTienda.ObtenerDatosTienda();
                lbTiendaMo.Text = dsTienda.Tables["Tienda"].Rows[0]["NombreTienda"].ToString();
                lbDireccionMo.Text = dsTienda.Tables["Tienda"].Rows[0]["Direccion"].ToString();
                lbTelefonoMo.Text = dsTienda.Tables["Tienda"].Rows[0]["Telefono"].ToString();
                lbHorarioMo.Text = dsTienda.Tables["Tienda"].Rows[0]["Horario"].ToString();

                UbicarMapa(lbDireccionMo.Text);
            }
            catch (Exception ex)
            {
                MyMessageBoxInfo.Show(MyMessageBox.MessageType.Error, ex.ToString(), "Error", 125, 300);
            }
        }
        
        public void UbicarMapa(string lugar)
        {
            try
            {
                string keyMap = System.Configuration.ConfigurationManager.AppSettings["googlemaps.subgurim.net"];
            
                GMap1.enableDragging = true;
                GMap1.enableGoogleBar = false;
                GMap1.enableGKeyboardHandler = true;
                GMap1.Language = "es"; 
                GMap1.Height = 400;
                GMap1.Width = 520;

                GeoCode GeoCode;
                GeoCode = GMap1.getGeoCodeRequest(lugar,keyMap);
            
                GLatLng gLatLng = new GLatLng(GeoCode.Placemark.coordinates.lat, GeoCode.Placemark.coordinates.lng);
                GMap1.setCenter(gLatLng, 16, GMapType.GTypes.Normal);
            
                GMarker oMarker = new GMarker(gLatLng);
                GMap1.addGMarker(oMarker);

                GInfoWindow oInfoWindow = new GInfoWindow(gLatLng, "<h1/>"+tbTienda.Text + "</h1><br/><img src='./Imagenes/Logo.png'>");
                GMap1.addInfoWindow(oInfoWindow);
            }
            catch (Exception ex)
            {
                MyMessageBoxInfo.Show(MyMessageBox.MessageType.Error, ex.ToString(), "Error", 125, 300);
            }
        }
        
        protected void btDatosTiendaEditar_Click(object sender, EventArgs e)
        {
            try
            {
                string nombre = tbTienda.Text;
                string direccion = tbDireccion.Text;
                int telefono = int.Parse(tbTelefono.Text);
                string horario = tbHorario.Text;

                Tienda enTienda = new Tienda(nombre, direccion, telefono, horario);
                if (enTienda.ActualizarTienda())
                {
                    MyMessageBoxInfo.Show(MyMessageBox.MessageType.Success, "Datos Modificados Correctamente", "Datos Editados", 125, 300);
                    UbicarMapa(direccion);
                }
                else
                {
                    MyMessageBoxInfo.Show(MyMessageBox.MessageType.Error, "No se pudo modificar los datos", "Datos sin Editar", 125, 300);
                }
            }
            catch (Exception ex)
            {
                MyMessageBoxInfo.Show(MyMessageBox.MessageType.Error, ex.ToString(), "Error", 125, 300);
            }
        }
    }
}
